package cn.b.sky.mes.hr.dao;

import java.util.List;

import cn.b.sky.mes.hr.model.PersonnelException;
import cn.b.sky.mes.hr.model.condition.PersonnelExceptionCondition;

public interface PersonnelExceptionDao {
  /**
   * 
   * <strong>Title : getPersonnelExceptionListByCondition<br></strong>
   * <strong>Description : </strong>根据查询条件返回记录<br> 
   * <strong>Create on : 2016-3-28 下午3:09:23<br></strong>
   * <p>
   * @param condition 
   * @return
   * List<PersonnelException>
   * @throws 
   * @author Yong.Dai<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<PersonnelException> getPersonnelExceptionListByCondition(PersonnelExceptionCondition condition);

  /**
   * 
   * <strong>Title : getPersonnelExceptionCountByCondition<br></strong>
   * <strong>Description : </strong>根据查询条件返回记录数<br> 
   * <strong>Create on : 2016-3-28 下午3:09:42<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author Yong.Dai<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int getPersonnelExceptionCountByCondition(PersonnelExceptionCondition condition);

  /**
   * 
   * <strong>Title : getPersonnelExceptionById<br></strong>
   * <strong>Description : </strong>根据ID获取异常记录<br> 
   * <strong>Create on : 2016-3-28 下午2:13:08<br></strong>
   * <p>
   * @param id
   * @return
   * PersonnelException
   * @throws 
   * @author Yong.Dai<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  PersonnelException getPersonnelExceptionById(Long id);

  /**
   * 
   * <strong>Title : updatePersonnelException<br></strong>
   * <strong>Description : </strong>更新人员异常记录<br> 
   * <strong>Create on : 2016-3-28 下午2:13:31<br></strong>
   * <p>
   * @param personnelException
   * void
   * @throws 
   * @author Yong.Dai<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updatePersonnelException(PersonnelException personnelException);

  /**
   * 
   * <strong>Title : deletePersonnelException<br></strong>
   * <strong>Description : </strong>删除人员异常记录<br> 
   * <strong>Create on : 2016-3-28 下午2:13:49<br></strong>
   * <p>
   * @param id
   * void
   * @throws 
   * @author Yong.Dai<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deletePersonnelException(Long id);

  /**
   * 
   * <strong>Title : insertPersonnelException<br></strong>
   * <strong>Description : </strong>新增人员异常记录<br> 
   * <strong>Create on : 2016-3-28 下午2:14:03<br></strong>
   * <p>
   * @param personnelException
   * void
   * @throws 
   * @author Yong.Dai<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertPersonnelException(PersonnelException personnelException);

  /**
   * 
   * <strong>Title : isPeresonnelExceptionValid<br></strong>
   * <strong>Description : </strong>查询有问题的数据条数(同一个人,同一天 起止时间不得重叠)<br> 
   * <strong>Create on : 2016-3-31 下午6:26:37<br></strong>
   * <p>
   * @param personnelException
   * @return
   * int
   * @throws 
   * @author Yong.Dai<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int isPeresonnelExceptionValid(PersonnelException personnelException);

}
